Книги-online
Ch 9.htm
назад
|
содержание
|
вперед
Изменение данных в файле произвольного
доступа
Для изменения данных в записях файла
(редактирование, добавление, удаление записей) применяется оператор put ft.
При его использовании необходимо иметь в виду, что данные в записи будут заменены
на те, которые мы передаем в файл. Подчеркнем, что новая запись с данными не
создается.
Для добавления записей в файл необходимо
указывать номер записи на единицу больший номера последней записи. В этом случае
запись будет добавлена в файл, а не изменена. Например:
Put #FileNum, LastRecord + 1, ForFileRecords
Для вычисления текущего номера последней
записи LastRecord можно использовать длину записи и размер файла, возвращаемый
функцией LOF.
Перейдем к описанию процесса удаления
данных из файла произвольного доступа. Существуют два способа. Можно просто
очистить соответствующие поля указанных записей, то есть записать в них пустые
значения. Однако в этом случае в файле остаются пустые записи. Понятно, что
при таком подходе ресурсы (дисковое пространство) используются нерационально.
Для окончательного удаления записей
рекомендуется перезаписывать данные в новый файл, пропуская пустые записи. Алгоритм
этих действий таков:
1. Создайте новый файл с помощью
оператора Open.
2. Перепишите все непустые записи
в новый файл, используя оператор
Put
#.
3. Закройте исходный файл и удалите
его при помощи оператора Kill.
4. Переименуйте новый файл в исходный
оператором Name.
Получаем тот же самый файл, но уже
без пустых записей. При этом экономится пространство диска и время поиска данных
в таком файле.
назад
|
содержание
|
вперед